package cn.org.eshow.service;

import cn.org.eshow.bean.query.UserCouponQuery;
import cn.org.eshow.common.page.Page;
import cn.org.eshow.model.Coupon;
import cn.org.eshow.model.User;
import cn.org.eshow.model.UserCoupon;

import javax.jws.WebService;
import java.util.List;

@WebService
public interface UserCouponManager extends GenericManager<UserCoupon, Integer> {

    List<UserCoupon> list(UserCouponQuery query);

    Page<UserCoupon> search(UserCouponQuery query);

    UserCoupon check(UserCouponQuery query);

    /**
     * @param user
     * @param coupon
     * @return
     */
    UserCoupon save(User user, Coupon coupon);




    /**
     * 使用红包,仅仅改变所选红包状态。订单不做变化
     */
    void useCoupon(UserCoupon userCoupon);

    /**
     * 订单取消时,优惠券返还回去
     * @param userCoupon
     */
    void turnBackUserCoupon(UserCoupon userCoupon);


    /**
     * 新用户送优惠券
     * @param user
     */
    void initUserCoupon(User user);



}